home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 441 / aessrc12 / aes@note.s next >
Text File  |  1990-11-23  |  4KB  |  96 lines

  1.  
  2. ;*========================================================================
  3. ;*
  4. ;* AESFAST Public Domain GEM bindings.
  5. ;*
  6. ;*========================================================================
  7.  
  8. ;*************************************************************************
  9. ;* AESNOTES.
  10. ;*
  11. ;* There is nothing executable in this module.  The library's version
  12. ;* number is here, and can be queried at runtime by looking at global
  13. ;* variable '_aesf_version', which is defined below.  I don't know why
  14. ;* anyone would want to do that.
  15. ;*
  16. ;* Mostly this is a collection of notes about the library and its source.
  17. ;*
  18. ;*************************************************************************
  19.  
  20. _aesf_version::
  21. aesV0120::
  22.  
  23.         dc.w    $0120          ;* version 01.20
  24.         
  25.         dc.b    'AESFAST v1.20  '
  26.         dc.b    'by Ian Lepore  '
  27.         
  28. ;*************************************************************************
  29. ;*
  30. ;*  Notes about the AESFAST AES bindings.
  31. ;*
  32. ;*  The object code & library are in 'DRI' format, & are thus compatible 
  33. ;*  with Alcyon C, Sozobon C, and any other compiler/linker which can handle
  34. ;*  'DRI-compatible' object files.
  35. ;*  
  36. ;*  When used with the Atari 'aln' linker, you must first use the 'DOINDEX'
  37. ;*  program to create a .NDX index file for the library.
  38. ;*  
  39. ;*  There is a small fixed overhead (the storage for the AES control blocks
  40. ;*  and a couple of small common interface routines) when using any of the
  41. ;*  AES functions.  This amounts to about a hundred or so bytes.  Beyond  
  42. ;*  that, the amount of runtime memory used is about 1/2 of the size of
  43. ;*  the object modules which are linked into your program.  (DRI object 
  44. ;*  modules before linking are roughly twice the size they will be after
  45. ;*  linking.)  Thus, if you write a program that causes every module in the
  46. ;*  library to be included, the overhead added to your program will be less
  47. ;*  than 4k.
  48. ;*  
  49. ;*  The stack space used by these bindings in processing a typical AES call
  50. ;*  is 10-40 bytes.  
  51. ;*  
  52. ;*  The library contains one global symbol other than the function names,
  53. ;*  '_gl_apid'.  There are no external references within the library, 
  54. ;*  it is self-contained.  It should never be necessary to make multiple 
  55. ;*  passes of the linker to resolve all references, and it shouldn't matter
  56. ;*  where the AESFAST name appears on the linker's command line. 
  57. ;*
  58. ;*  If you make changes, the 'aescomn' module should appear last in the
  59. ;*  library as all other modules reference it, and the 'aesutil' modules
  60. ;*  should appear first in the library as they contain calls to the other
  61. ;*  AES routines.
  62. ;*
  63. ;*  This code was developed using the Digital Research publication _AES
  64. ;*  Programmer's Guide_.  There may be differences between the DRI docs
  65. ;*  and the Abacus _GEM Programmer's Guide_.
  66. ;*  
  67. ;*  This code was developed under Atari's MadMac assembler, and probably
  68. ;*  won't assemble correctly on any other assembler. To convert this code 
  69. ;*  to another assembler, the following notes may be of use:
  70. ;*  
  71. ;*    All comments are preceded by ';*', many assemblers use the '*' for a
  72. ;*    comment delimiter.  Using an editor, do a 'search and replace all'
  73. ;*    to change ';*' to '*;'.  Please don't change them to just an '*',
  74. ;*    because trying to change them back will also catch computed constants
  75. ;*    such as 'move.l   4*SIZE,d0'.
  76. ;*    
  77. ;*    The MadMac '.cargs' opcode is used extensively.  This opcode simply
  78. ;*    generates equates for the named symbols; for another assembler, you
  79. ;*    can comment out the .cargs line and add normal equates, as follows:
  80. ;*    
  81. ;*       ;* .cargs  #8,.handle.w,.pxy.l,.color.w
  82. ;*       .handle = 8
  83. ;*       .pxy    = 10
  84. ;*       .color  = 14  
  85. ;*
  86. ;*    MadMac recognizes symbols starting with a '.' as local symbols, 
  87. ;*    limited in scope to the nearest surrounding non-local symbols.  For
  88. ;*    an assembler that doesn't use local symbols, you're gonna be spending
  89. ;*    a LOT of time removing leading '.' characters and thinking up unique
  90. ;*    names for everything.
  91. ;*    
  92. ;*************************************************************************
  93.  
  94. ;       end of code
  95.  
  96.